<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>es6新特性-class</title>
</head>
<body>


</body>

<script>


    //类的所有方法都定义在类的prototype属性上面。
    class Point {
        constructor() {
            console.log("创建");
        }

        play() {

            // alert("成员方法");
            console.log("成员方法");
        }
    }

    //上述代码等价于
    let p = Point.prototype = {
        constructor() {
            console.log("创建");
        },
        play() {

            // alert("成员方法");
            console.log("成员方法");
        }
    };

    console.log(p);

    p.play();
    let p1 = new Point();
    console.log(p1);
    console.log(p1 === p);

    //在类的实例上面调用方法，其实就是调用原型上的方法。
    class Ba {

    }

    let b = new Ba();
    console.log(b.constructor === Ba.prototype.constructor); //true

    console.log("/*-----------------      -------------*/");


    class User{
        constructor(age){
            this.age=age;
            this._age=age;
        }
        get age(){
            return this._age;
        }
        set age(value){
            this._age=value;
            console.log("年龄"+value);
        }
    }
    let kevin=new User(9);
    kevin.age=11;
    // kevin.age=18;
    console.log(kevin.age);


    class Person{
        static sum=11;
        constructor(){
            this.add();
        }
        add(){
            Person.sum++;
        }
    }
    let kaiwen=new Person();
    console.log("当前的聊天室人数为："+Person.sum);
    //作用：当没有实例化的时候，我们可以通过静态的属性和方法去获取一些信息
    // 注意，如果静态方法包含this关键字，这个this指的是类，而不是实例。静态方法可以与非静态方法重名。





</script>


</html>
